home *** CD-ROM | disk | FTP | other *** search
-
- RCMD(3) UNIX Programmer's Manual RCMD(3)
-
- NNAAMMEE
- rrccmmdd, rrrreessvvppoorrtt, iirruusseerrookk, rruusseerrookk - routines for returning a stream to a
- remote command
-
- SSYYNNOOPPSSIISS
- ##iinncclluuddee <<uunniissttdd..hh>>
-
- _i_n_t
- rrccmmdd(_c_h_a_r _*_*_a_h_o_s_t, _i_n_t _i_n_p_o_r_t, _c_o_n_s_t _c_h_a_r _*_l_o_c_u_s_e_r, _c_o_n_s_t _c_h_a_r _*_r_e_m_u_s_e_r,
- _c_o_n_s_t _c_h_a_r _*_c_m_d, _i_n_t _*_f_d_2_p)
-
- _i_n_t
- rrrreessvvppoorrtt(_i_n_t _*_p_o_r_t)
-
- _i_n_t
- iirruusseerrookk(_u___l_o_n_g _r_a_d_d_r, _i_n_t _s_u_p_e_r_u_s_e_r, _c_o_n_s_t _c_h_a_r _*_r_u_s_e_r,
- _c_o_n_s_t _c_h_a_r _*_l_u_s_e_r)
-
- _i_n_t
- rruusseerrookk(_c_o_n_s_t _c_h_a_r _*_r_h_o_s_t, _i_n_t _s_u_p_e_r_u_s_e_r, _c_o_n_s_t _c_h_a_r _*_r_u_s_e_r,
- _c_o_n_s_t _c_h_a_r _*_l_u_s_e_r)
-
- DDEESSCCRRIIPPTTIIOONN
- The rrccmmdd() function is used by the super-user to execute a command on a
- remote machine using an authentication scheme based on reserved port num-
- bers. The rrrreessvvppoorrtt() function returns a descriptor to a socket with an
- address in the privileged port space. The iirruusseerrookk() and rruusseerrookk() func-
- tions are used by servers to authenticate clients requesting service with
- rrccmmdd(). All four functions are present in the same file and are used by
- the rshd(8) server (among others).
-
- The rrccmmdd() function looks up the host _*_a_h_o_s_t using gethostbyname(3), re-
- turning -1 if the host does not exist. Otherwise _*_a_h_o_s_t is set to the
- standard name of the host and a connection is established to a server re-
- siding at the well-known Internet port _i_n_p_o_r_t.
-
- If the connection succeeds, a socket in the Internet domain of type
- SOCK_STREAM is returned to the caller, and given to the remote command as
- _s_t_d_i_n and _s_t_d_o_u_t. If _f_d_2_p is non-zero, then an auxiliary channel to a
- control process will be set up, and a descriptor for it will be placed in
- _*_f_d_2_p. The control process will return diagnostic output from the command
- (unit 2) on this channel, and will also accept bytes on this channel as
- being UNIX signal numbers, to be forwarded to the process group of the
- command. If _f_d_2_p is 0, then the _s_t_d_e_r_r (unit 2 of the remote command)
- will be made the same as the _s_t_d_o_u_t and no provision is made for sending
- arbitrary signals to the remote process, although you may be able to get
- its attention by using out-of-band data.
-
- The protocol is described in detail in rshd(8).
-
- The rrrreessvvppoorrtt() function is used to obtain a socket with a privileged ad-
- dress bound to it. This socket is suitable for use by rrccmmdd() and several
- other functions. Privileged Internet ports are those in the range 0 to
- 1023. Only the super-user is allowed to bind an address of this sort to
- a socket.
-
- The iirruusseerrookk() and rruusseerrookk() functions take a remote host's IP address or
- name, respectively, two user names and a flag indicating whether the lo-
- cal user's name is that of the super-user. Then, if the user is _N_O_T the
- super-user, it checks the _/_e_t_c_/_h_o_s_t_s_._e_q_u_i_v file. If that lookup is not
- done, or is unsuccessful, the _._r_h_o_s_t_s in the local user's home directory
- is checked to see if the request for service is allowed.
-
- If this file does not exist, is not a regular file, is owned by anyone
- other than the user or the super-user, or is writeable by anyone other
- than the owner, the check automatically fails. Zero is returned if the
- machine name is listed in the ``_h_o_s_t_s_._e_q_u_i_v'' file, or the host and re-
- mote user name are found in the ``_._r_h_o_s_t_s'' file; otherwise iirruusseerrookk()
- and rruusseerrookk() return -1. If the local domain (as obtained from
- gethostname(2)) is the same as the remote domain, only the machine name
- need be specified.
-
- If the IP address of the remote host is known, iirruusseerrookk() should be used
- in preference to rruusseerrookk(), as it does not require trusting the DNS serv-
- er for the remote host's domain.
-
- DDIIAAGGNNOOSSTTIICCSS
- The rrccmmdd() function returns a valid socket descriptor on success. It re-
- turns -1 on error and prints a diagnostic message on the standard error.
-
- The rrrreessvvppoorrtt() function returns a valid, bound socket descriptor on suc-
- cess. It returns -1 on error with the global value _e_r_r_n_o set according
- to the reason for failure. The error code EAGAIN is overloaded to mean
- ``All network ports in use.''
-
- SSEEEE AALLSSOO
- rlogin(1), rsh(1), intro(2), rexec(3), rexecd(8), rlogind(8),
- rshd(8)
-
- HHIISSTTOORRYY
- These functions appeared in 4.2BSD.
-
- 4.2 Berkeley Distribution June 4, 1993 2
-